#include "mycanvas.h"

MyCanvas::MyCanvas(QWidget *parent) :
    QWidget(parent)
{
    this->x_cotainferior=-2;
    this->x_cotasuperior=2;
    this->y_cotainferior=-2;
    this->y_cotasuperior=2;
}

int MyCanvas::x_canvas(double coordenada, QSize* size)
{
    double nuevox=this->cambiarSistemaCoordenadas(coordenada, this->x_cotainferior, this->x_cotasuperior, 0, size->width());
    //return (int)nuevox+size->width()/2;
    return (int)nuevox;
}

int MyCanvas::y_canvas(double coordenada, QSize* size)
{
    double nuevoy=this->cambiarSistemaCoordenadas(coordenada, this->y_cotainferior, this->y_cotasuperior, size->height(), 0);
    //return (int)-nuevoy+size->height()/2;
    return (int)nuevoy;
}


double MyCanvas::x_funcion(int coordenada, QSize* size)
{
    //coordenada=coordenada-size->width()/2;
    double x=this->cambiarSistemaCoordenadas(coordenada,0, size->width(), this->x_cotainferior, this->x_cotasuperior);
    return x;
}

double MyCanvas::y_funcion(int coordenada, QSize* size)
{
    //coordenada=-coordenada+size->height()/2;
    double y=this->cambiarSistemaCoordenadas(coordenada,size->height(), 0, this->y_cotainferior, this->y_cotasuperior);
    return y;
}

double MyCanvas::cambiarSistemaCoordenadas(double coordenada, double cotainferiorvieja, double cotasuperiorvieja, double cotainferiornueva, double cotasuperiornueva)
{
    double a=cotainferiorvieja;
    double b=cotasuperiorvieja;
    double ap=cotainferiornueva;
    double bp=cotasuperiornueva;
    double resultado=ap+(coordenada-a)*(bp-ap)/(b-a);
    return resultado;

}
